草庐IT

c++ - 池化线程的 SetThreadAffinityMask

全部标签

c - 在 WTL/Win32 应用程序中如何处理右键单击 TreeView ?

我有一个用ATL编写的基本应用程序,使用VS2008的向导。我在应用程序的左侧有一个TreeView。我看到了如何(痛苦地)添加树项目。问题是如何在鼠标右键单击时显示菜单?如何在可以选择的每个项目上捕获任何点击事件? 最佳答案 您应该检测到WM_CONTEXTMENUWindows消息specifyingahandlerinyourmessagemap.在处理程序中,您可以显示上下文菜单。然后,您还需要确保在从上下文菜单中选择命令时处理消息映射中的菜单命令。使用COMMAND_HANDLER这部分的消息映射中的宏。

windows - SetThreadAffinityMask 被忽略....有什么想法吗?

更新:我发现了问题-令人尴尬/讽刺的是,它是在错误的线程中调用SetThreadAffinity(),而不是在主线程中调用(程序启动很困惑......)现在一切正常,感谢所有帮助!我已为参与我的小调试session的每个人点赞。 最佳答案 这样称呼有什么不同吗?:DWORD_PTRmask=1;SetThreadAffinityMask(GetCurrentThread(),mask);你的线程句柄有必要的accessrights吗??:WindowsServer2003andWindowsXP/2000:Thehandlemust

c - ReadProcessMemory 返回一个更大的缓冲区(C,windows)

我正在尝试使用以下代码读取进程内存:voidreaddata(HANDLEphandle,LPCVOIDpaddress,SIZE_Tdatasize){char*buff;SIZE_Tdataread;BOOLb=FALSE;buff=(char*)malloc(datasize);b=ReadProcessMemory(phandle,paddress,(LPVOID)buff,datasize,&dataread);if(!b){printf("errorreadingmemory,err=%d\n",GetLastError());return;}printf("DataRea

c - 是否有基于 Microsoft C 的列表集合?

我正在使用C不是C++!我知道C++集合,但我想知道Microsoft是否有某种类型的基于C的列表结构,如linux内核提供的,我可以在用户模式项目中使用?我不想自己动手。 最佳答案 WindowsAPI中唯一的东西是互锁的单链表,它们通过InterlockedPushEntrySList使用。和InterlockedPopEntrySList.对于设备驱动程序,有LIST_ENTRY,但我不确定是否可以将其拉入用户模式。许多算法书籍和网站包含可以轻松移植到C的链表的实现。滚动你自己的并不太难。

python - 为 Windows 7 编译 IP2Location Python 扩展

我想编译/安装在此处找到的IP2LocationPython扩展:www.ip2location.com/python.aspx我尝试按照这些网站上的说明进行操作:eli.thegreenplace.net/2008/06/28/compiling-python-extensions-with-distutils-and-mingw/boodebr.org/main/python/build-windows-extensions但我没有得到任何地方。问题是Python扩展依赖于另一个C库:www.ip2location.com/c.aspx当我尝试在cygwin中编译这个库时,我得到以

c++ - 外部限制程序帧率

试图找到一种方法,以类似于VSync的方式从外部限制程序/游戏的帧率,但限制为指定的数字(而不是屏幕刷新率)。在FRAPS中可以看到我的目标的一个完美示例,当录制视频时,帧速率限于录制速率。原因是对于图形密集度不高的快节奏游戏来说,可以阻止帧率大幅变化引起的“屏幕滞后”,但是VSync不适合,因为奇怪的是它会增加键盘/鼠标之间的延迟(两者都以高速率轮询,所以不是硬件问题)。理想情况下寻找C/++中的一些建议,老实说不知道从哪里开始。 最佳答案 我不确定你是否明白你在问什么。FPS游戏的运行方式是,先绘制屏幕,​​处理键盘/鼠标等操作

c - 可以采用大于 255 个字符的路径的 Windows 全路径 API 的替代方案!

windows的_fullpathAPI取相对路径,给出对应的绝对路径。但是,如果相对路径大于255个字符,它将失败。在Windows中有没有其他API可以将相对路径转换为绝对路径并且不存在上述问题? 最佳答案 我认为最接近的是GetFullPathNamefunction.您可以显式调用它的Unicode版本并将\\?\添加到路径以允许超过MAX_PATH个字符。 关于c-可以采用大于255个字符的路径的Windows全路径API的替代方案!,我们在StackOverflow上找到一个

c++ - 在 wxwidgets 中,如何让一个线程在继续之前等待另一个线程完成?

我有一个系统,我的单例类生成一个线程来进行计算。如果用户在另一个计算仍在运行时请求另一个计算,我希望它拆除现有线程并启动一个新线程。但是,它应该等待第一个线程完全退出才能继续。我已经完成了所有的拆解工作,但我似乎无法确保只有一个线程运行。我的方法是让StartCalculation函数调用mutex->Lock()。析构函数中的线程释放锁。它不工作。我假设如果Lock()无法获得锁,它会旋转并不断尝试重新获取锁,我的假设是否正确?这个Lock()可以从我的主应用程序线程调用吗?任何想法都是有帮助的。也许wxMutex锁是正确的机制。 最佳答案

c++ - 在 Windows 上安装 C/C++ 库

我现在正在学习(好吧,正在尝试)C,但我仅限于在WindowsXP中工作。我已经设法设置并学习了如何使用Emacs,并且可以使用gcc(至少来自Emacs!)编译简单的C程序,但我已经到了想要安装SDL之类的东西来玩的地步用它。问题是SDL的安装说明表明,在使用MingW的Win32环境中,我需要使用MSYS运行./configure和make/makeinstall来安装SDL,就像在Linux上一样。我注意到,当我解压缩SDL-dev包时(忘记了确切的名称,抱歉)那里有与MinGW目录中的文件夹相对应的文件夹(SDL/include->MinGW/include)。我说的所有./c

c - 用/替换许多文件的脚本是什么样的?

是的,这是一个非常懒惰的问题,但我认为这是人们经常遇到的问题,以至于这里有人已经写了一些东西可以分享。我有大量C文件,其中包含使用Windows相对路径的#include语句。我正致力于在其他操作系统上编译代码(立即在我的OSX开发机器上),并且需要在这些include语句中将所有反斜杠替换为正斜杠。因此,从#include"libs\helper.h"到#include"libs/helper.h"。 最佳答案 sed'/^[]*#[]*include/s:\\:/:g'这应该非常健壮,因为它应该捕获#include的任何合法格式